home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 21 / Cream of the Crop 21 (Terry Blount) (October 1996).iso / program / libkb100.zip / LIBKB-1.00 / MAKEFILE.MFX < prev    next >
Text File  |  1996-07-23  |  6KB  |  223 lines

  1. #
  2. # Makefile for MSDOS + dmake + 4DOS
  3. #
  4. # libkb -- a free, advanced and portable low-level keyboard library
  5. # Copyright (C) 1995, 1996 Markus Franz Xaver Johannes Oberhumer
  6. # For conditions of distribution and use, see copyright notice in kb.h 
  7. #
  8.  
  9. shell_@=$(@:s,/,\)
  10.  
  11. # /***********************************************************************
  12. # // Configuration
  13. # // Tools needed: 4DOS, gnufind, gnutouch, perl, rm, sed, zip
  14. # ************************************************************************/
  15.  
  16. .IF $C == DJG
  17. LIBKB = libkb$(A)    # name of the library
  18. .ELSE
  19. LIBKB = kb$(A)        # name of the library
  20. .ENDIF
  21.  
  22. FIND  := gnufind
  23. TOUCH := gnutouch
  24. REN   := +ren
  25.  
  26. MAKE_SWAP := .SWAP    # dmake specific
  27. DIRSEP := \\
  28.  
  29. DIRNAME  := $(shell *cd | sed -e "s|.*[/\\]||")
  30. DISTNAME := $(shell echo $(DIRNAME) | sed -e "s/[^0-9a-zA-Z]//g")
  31. VERSION  := $(shell echo $(DIRNAME) | sed -e "s/[^0-9]//g")
  32.  
  33.  
  34. # /***********************************************************************
  35. # // Directories
  36. # ************************************************************************/
  37.  
  38. SRCDIR = include src samples
  39. OBJDIR = $(_OBJDIR)            # objects, exe, ...
  40.  
  41. .SOURCE.c     : .NULL  $(SRCDIR)
  42. .SOURCE.cc    : .NULL  $(SRCDIR)
  43. .SOURCE.cpp   : .NULL  $(SRCDIR)
  44. .SOURCE.h     : .NULL  $(SRCDIR)
  45. .SOURCE.hh    : .NULL  $(SRCDIR)
  46. .SOURCE.pl    : .NULL  $(SRCDIR)
  47.  
  48. .SOURCE$O     : .NULL  $(OBJDIR)
  49. .SOURCE$A     : .NULL  $(OBJDIR)
  50. .SOURCE$E     : .NULL  $(OBJDIR)
  51. .SOURCE$(LNK) : .NULL  $(OBJDIR)
  52. .SOURCE$(RSP) : .NULL  $(OBJDIR)
  53.  
  54.  
  55. # /***********************************************************************
  56. # // Compiler and linker flags
  57. # ************************************************************************/
  58.  
  59. ## CFLAGS           += $(CFLAGS_DF)    # full debug info
  60. CFLAGS           += $(CFLAGS_OF)    # full optimization
  61. ## CFLAGS           += $(CFLAGS_OFF)    # full optimization (may NOT be safe)
  62. CFLAGS           += $(CFLAGS_WF)    # full warnings
  63.  
  64. CFLAGSI          += -Iinclude
  65. CFLAGSI          += -Isrc         # needed for tube.c
  66.  
  67. # CFLAGSD          += -DKB_DEBUG=4    # include debug stuff
  68.  
  69.  
  70. BCC_CFLAGS       += -N-           # no stack overflow checks
  71. BCC_CFLAGSI      += -Isamples
  72. BCC31_CFLAGS     += -1 -1-        # should run on a XT
  73. BCC40_CFLAGS     +=
  74. ## BCC40_LDFLAGS    += -ll            # create map file
  75.  
  76. DJG_CFLAGS       += -m486 
  77. DJG_CFLAGS       += -W -pedantic
  78. DJG257_LDFLAGSX  += -lpc
  79. .IF $(C_CV) == DJG257
  80.   TUBE_SOUNDLIB    += -lm
  81.   LD_SPECIAL = coff2exe $@
  82. .ENDIF
  83. .IF $(C_CV) == DJG272
  84. #  DJG_CFLAGSD      += -DUSE_SB_LIB    # use Sound Blaster lib
  85. #  TUBE_SOUNDLIB    += -lsb 
  86.   DJG_CFLAGSD      += -DUSE_MIKMOD    # use MikMod lib
  87.   TUBE_SOUNDLIB    += -lmik 
  88.   TUBE_SOUNDLIB    += -lemu -s        # strip executeable
  89. .ENDIF
  90.  
  91.  
  92. EMX_CFLAGS       += -W -pedantic
  93. ## EMX_CFLAGS       += -m486 -malign-jumps=0    # already set in GCCOPT
  94. EMX_CFLAGS       += -fbounds-checking
  95. EMX_LDFLAGS      += -fbounds-checking
  96. EMX_LDFLAGSX     += -lvideo
  97. .IF $C == EMX
  98.   LD_SPECIAL = emxbind -aq $@ -acim    # -am for _memaccess, -ac for _int86
  99. .ENDIF
  100.  
  101. MSC60_CFLAGS     += -Gs           # no stack overflow checks
  102. MSC80_CFLAGS     += -Gs           # no stack overflow checks
  103.  
  104. WCC_CFLAGS       += -s           # no stack overflow checks
  105. WCC_LDFLAGS      += -l=pmodew        # link with PMODE/W
  106. .IF $(C_CV) == WCC105
  107. ## WCC_CFLAGSD      += -DUSE_VAT        # use VAT
  108. ## TUBE_SOUNDLIB    += /"l vat"
  109. WCC_CFLAGSD      += -DUSE_MIKMOD    # use MikMod
  110. TUBE_SOUNDLIB    += /"l mik"
  111. .ENDIF
  112.  
  113.  
  114. # /***********************************************************************
  115. # // Main targets
  116. # ************************************************************************/
  117.  
  118. .PHONY: default all test_pgm clean
  119.  
  120. default: all
  121.  
  122. .INCLUDE: makefile.inc
  123.  
  124. all: $(LIBKB) test_pgm ole_install
  125.  
  126.  
  127. kb$(RSP): $(OBJS)
  128.  
  129. $(LIBKB): kb$(RSP)
  130.     $(ARLIB)
  131.  
  132. mktables$E $(MAKE_SWAP): mktables$O
  133.     $(LDEXE)
  134.  
  135. test_pgm: kbtst$C$E simple$E sigalrm$E keycodes$E tube$E
  136.  
  137. kbtst$C$E $(MAKE_SWAP): kbtst$O $(LIBKB)
  138.     $(LDEXE)
  139.     $(LD_SPECIAL)
  140.  
  141. simple$E $(MAKE_SWAP): simple$O $(LIBKB)
  142.     $(LDEXE)
  143.     $(LD_SPECIAL)
  144.  
  145. sigalrm$E $(MAKE_SWAP): sigalrm$O $(LIBKB)
  146.     $(LDEXE)
  147.     $(LD_SPECIAL)
  148.  
  149. keycodes$E $(MAKE_SWAP): keycodes$O $(LIBKB)
  150.     $(LDEXE)
  151.     $(LD_SPECIAL)
  152.  
  153. tube$E $(MAKE_SWAP): tube$O $(LIBKB)
  154.     $(LDEXE) $(TUBE_SOUNDLIB)
  155.     $(LD_SPECIAL)
  156.  
  157.  
  158. _kbname.hh: mkkbname.pl kb.h
  159.     perl -w $& > $(shell_@)
  160.  
  161.  
  162. clean:
  163.     + *del /q *.o;*.obj;*.a;*.lib;*.exe;*.out;$(DISTNAME).zip
  164.  
  165.  
  166. # /***********************************************************************
  167. # // 
  168. # ************************************************************************/
  169.  
  170. delo .PHONY:
  171.     -rm -rf o_bccl.31 o_bccl.40 o_djg.257 o_djg.272 o_emx.263 o_emx.272 o_wccf.105
  172.     -rm -rf _bcc _djgpp _wcc
  173.  
  174. dos .PHONY $(MAKE_SWAP): delo
  175.     +util\make_dos
  176.  
  177.  
  178. # /***********************************************************************
  179. # // Installation
  180. # ************************************************************************/
  181.  
  182. hdr_install : kb.h kbmlock.h
  183.     +-copy /u $&  $(MFXINC)\\
  184.  
  185. lib_install : $(LIBKB)
  186.     +-copy /u $&  $(MFXLIB)\\
  187.  
  188. mfxinstall  : hdr_install lib_install
  189.  
  190. ole_install : objmove libmove exemove mfxinstall
  191.  
  192. ol_install  : objmove libmove mfxinstall
  193.  
  194. oe_install  : objmove exemove mfxinstall
  195.  
  196.  
  197. # /***********************************************************************
  198. # // Distribution
  199. # ************************************************************************/
  200.  
  201. .PHONY: virus rar zip dist pack
  202.  
  203. virus $(MAKE_SWAP):
  204.     scan . /all /sub
  205.     f-prot . /all /paranoid 
  206.     f-prot . /analyse /paranoid
  207.  
  208.  
  209. rar $(MAKE_SWAP): util/mkdist.pl 
  210.     +-del $(DISTNAME).rar
  211.     $(FIND) -type f -print | perl util/mkdist.pl $(DIRNAME) | (cd .. && rar2 -s -m5 -tl @- $(DIRNAME)\$(DISTNAME).rar)
  212.     $(TOUCH) -c $(DISTNAME).rar
  213.  
  214.  
  215. zip $(MAKE_SWAP): util/mkdist.pl 
  216.     +-del $(DISTNAME).zip
  217.     $(FIND) -type f -print | perl util/mkdist.pl $(DIRNAME) | (cd .. && zip -9 -o -@ $(DIRNAME)\$(DISTNAME).zip)
  218.     $(TOUCH) -c $(DISTNAME).zip
  219.  
  220. dist: delo grep distexe virus touch zip
  221.  
  222. pack: delo zip
  223.